1. De la Suma a la Multiplicación
En marcos teóricos, las transformaciones lineales y las traslaciones (mapas afines) suelen tratarse por separado. Sin embargo, las bibliotecas de alto rendimiento como BLAS (Subrutinas Básicas de Álgebra Lineal) están optimizadas específicamente para productos matriz-vector y matriz-matriz. Para aprovechar estos núcleos, expresamos todas las operaciones como:
$$T(v) = Av$$
2. Coordenadas Homogéneas
Para implementar un desplazamiento en $\mathbf{R}^n$ usando una matriz, expandimos a $\mathbf{R}^{n+1}$. Un vector $[x, y, z]^T$ se convierte en $[x, y, z, 1]^T$. Esta "1 extra" permite codificar una traslación en la última columna de una matriz $(n+1) \times (n+1)$.
Una traslación por $v_0 = [t_x, t_y, t_z]^T$ se representa mediante:
$$A = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}$$
Los números $0, 0, 0, 1$ en la última fila desempeñan un papel fundamental. Cuando $A$ multiplica un vector con un componente final de $1$, el componente final resultante es:
$(0 \cdot x) + (0 \cdot y) + (0 \cdot z) + (1 \cdot 1) = 1$
Esto asegura que se preserve la naturaleza "afín" de los datos, permitiendo operaciones secuenciales sin perder la integridad del sistema de coordenadas.
3. Estándares de Implementación: BLAS
La eficiencia numérica depende de subrutinas estandarizadas. BLAS proporciona tres niveles de operaciones:
- Nivel 1: Operaciones vector-vector (por ejemplo, productos punto).
- Nivel 2: Operaciones matriz-vector ($Ax+b$).
- Nivel 3: Operaciones matriz-matriz ($AB+C$), que son las más densas computacionalmente y más eficientes en hardware.